Corosync

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Corosync
Тип Система группового общения для отказоустойчивых кластеров
Разработчик The Corosync Development Community
Написана на Си
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск январь 2008[1]
Последняя версия 3.1.6[2] (15 ноября 2021)
Лицензия "модифицированная" BSD
Ссылки
Сайт corosync.github.io/coros…

Corosync (Corosync Cluster Engine) — проект с открытым исходным кодом, реализующий систему группового общения для отказоустойчивых кластеров. Является развитием проекта OpenAIS и опубликован в соответствии с модифицированной лицензией BSD.

Особенности

Проект предоставляет четыре набора API для языка Си:

  • «Закрытая группа процессов» (англ. Closed Process Group — CPG) — модель взаимодействия, реализующая виртуальную синхронизацию[en], которая гарантирует, что процессы на узлах кластера получат одинаковые сообщения в одинаковом порядке.
  • «Простой менеджер доступности» (англ. Simple Availability Manager — SAM), отслеживающий состояния приложений и позволяющий их перезапускать после сбоя.
  • «База данных конфигурации» (англ. Configuration database — confdb) в оперативной памяти, позволяющая получать конфигурацию и статистику Corosync, менять конфигурацию и получать уведомления об её изменениях.
  • «Кворум[en]» (англ. quorum) — система, оповещающая приложения о том, достигнут кворум (необходимое минимальное количество активных узлов кластера) или нет.

Программное обеспечение предназначено для работы в сетях UDP/IP и InfiniBand.

Архитектура

Программное обеспечение создано как исполняемые бинарные файлы, использующие клиент-серверную модель взаимодействия между библиотеками и сервисными инструментами. Модули, называемые сервисными инструментами, загружаются в Corosync и используют сервисы, предоставляемые внутренним API Corosync.

Сервисы, предоставляемые внутренним API Corosync:

История

Проект был анонсирован в июле 2008 года на конференции Linux Symposium[en] в Оттаве[1]. Исходный код проекта OpenAIS был реорганизован так, что инфраструктурные компоненты были помещены в Corosync, а API SA Forum[en] остался в OpenAIS.

Во второй версии corosync (2012) изменена система кворума, ставшая составной частью демона[6], и отключена поддержка сторонних дополнений. Corosync 2 доступен с Fedora 17 и RHEL 7[7].

Примечания

  1. 1,0 1,1 Dake, S.; Caulfield, C.; Beekhof, A. The Corosync Cluster Engine (неопр.) // Proceedings of the Linux Symposium. — 2008. — July. — С. 85—99. Архивировано 24 сентября 2016 года.
  2. Releases. Дата обращения: 23 сентября 2016. Архивировано 15 сентября 2020 года.
  3. Amir, Y.; Moser, L.E.; Melliar-Smith, P.M.; Agarwal, D.A.; Ciarfella, P. The Totem Single Ring Ordering and Membership Protocol (англ.) // ACM Transactions on Computer Systems  (англ.) : journal. — 1995. — November (vol. 13, no. 4). — P. 311—342. — doi:10.1145/210223.210224. Архивировано 29 апреля 2022 года.
  4. Moser, L.E.; Amir, Y.; Melliar-Smith, P.M.; Agarwal, D.A. Extended Virtual Synchrony (неопр.) // Proceedings of the IEEE 14th International Conference on Distributed Computing Systems. — 1994. — С. 56—65.
  5. Dake, S. The Corosync High Performance Shared Memory IPC Reusable C Library (англ.) // Proceedings of the Linux Symposium : journal. — 2009. — July. — P. 61—68. Архивировано 3 марта 2016 года.
  6. Christine Caulfield,New quorum features in Corosync 2 Архивная копия от 2 января 2017 на Wayback Machine - 2012-2016  (англ.)
  7. Linux Cluster next generation Архивная копия от 1 января 2017 на Wayback Machine, LVEE, 2013

Ссылки